package com.atguigu.tingshu.user.config;

import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
import cn.binarywang.wx.miniapp.config.WxMaConfig;
import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
@Data
@ConfigurationProperties(prefix = "wechat.login")
public class WechatAccountConfig {

    private String appId ;
    private String appSecret ;

    @Bean
    public WxMaConfig wxMaConfig() {
        WxMaDefaultConfigImpl wxMaConfig = new WxMaDefaultConfigImpl() ;
        wxMaConfig.setAppid(appId);
        wxMaConfig.setSecret(appSecret);
        wxMaConfig.setMsgDataFormat("JSON");
        return wxMaConfig ;
    }

    /**
     * 该方法被spring 框架进行调用，在调用该方法的时候会自动传入一个WxMaConfig对象
     */
    @Bean
    public WxMaService wxMaService(WxMaConfig wxMaConfig){
        WxMaService wxMaService = new WxMaServiceImpl() ;
        wxMaService.setWxMaConfig(wxMaConfig);
        return wxMaService ;
    }

}
